Unit Testing হলো সফটওয়্যার ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ, যা অ্যাপ্লিকেশনের ছোট ছোট ইউনিট বা কম্পোনেন্টের কার্যকারিতা পরীক্ষা করে। xUnit হলো একটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক, যা ASP.NET Core অ্যাপের জন্য সহজে Unit Test লিখতে সাহায্য করে। এটি দ্রুত, মডিউলার, এবং সহজবোধ্য টেস্টিং ফিচার প্রদান করে।
xUnit ব্যবহার করতে আপনার ASP.NET Core প্রজেক্টে xUnit NuGet প্যাকেজ ইনস্টল করতে হবে।
একটি আলাদা টেস্ট প্রজেক্ট তৈরি করতে নিচের কমান্ড ব্যবহার করুন:
dotnet new xunit -n MyApp.Tests
MyApp.Tests
টেস্ট প্রজেক্টের জন্য নির্ধারিত নাম।
আপনার মূল অ্যাপ্লিকেশন প্রজেক্টকে টেস্ট প্রজেক্টে রেফারেন্স হিসেবে যোগ করুন:
dotnet add reference ../MyApp/MyApp.csproj
একটি সাধারণ CalculatorService ক্লাস, যা যোগ এবং বিয়োগ ফাংশনালিটি প্রদান করে:
public class CalculatorService
{
public int Add(int a, int b) => a + b;
public int Subtract(int a, int b) => a - b;
}
MyApp.Tests
প্রজেক্টে একটি টেস্ট ক্লাস তৈরি করুন (যেমন CalculatorServiceTests.cs
) এবং টেস্ট লিখুন।
using Xunit;
public class CalculatorServiceTests
{
[Fact]
public void Add_ReturnsSumOfTwoNumbers()
{
// Arrange
var calculator = new CalculatorService();
int a = 5, b = 3;
// Act
int result = calculator.Add(a, b);
// Assert
Assert.Equal(8, result);
}
[Fact]
public void Subtract_ReturnsDifferenceOfTwoNumbers()
{
// Arrange
var calculator = new CalculatorService();
int a = 10, b = 4;
// Act
int result = calculator.Subtract(a, b);
// Assert
Assert.Equal(6, result);
}
}
ASP.NET Core অ্যাপ্লিকেশন সাধারণত Dependency Injection (DI) ব্যবহার করে। টেস্টিংয়ে DI ব্যবহারের জন্য Mocking ফ্রেমওয়ার্ক (যেমন Moq) প্রয়োজন।
IWeatherService ইন্টারফেস এবং একটি ইমপ্লিমেন্টেশন:
public interface IWeatherService
{
string GetWeather();
}
public class WeatherService : IWeatherService
{
public string GetWeather() => "Sunny";
}
[ApiController]
[Route("[controller]")]
public class WeatherController : ControllerBase
{
private readonly IWeatherService _weatherService;
public WeatherController(IWeatherService weatherService)
{
_weatherService = weatherService;
}
[HttpGet]
public string Get()
{
return _weatherService.GetWeather();
}
}
Moq ব্যবহার করে DI এর জন্য Mock করা যায়। Moq প্যাকেজ ইন্সটল করুন:
dotnet add package Moq
টেস্ট ক্লাস:
using Moq;
using Xunit;
public class WeatherControllerTests
{
[Fact]
public void Get_ReturnsWeatherFromService()
{
// Arrange
var mockWeatherService = new Mock<IWeatherService>();
mockWeatherService.Setup(service => service.GetWeather()).Returns("Cloudy");
var controller = new WeatherController(mockWeatherService.Object);
// Act
var result = controller.Get();
// Assert
Assert.Equal("Cloudy", result);
}
}
টেস্ট চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:
dotnet test
Unit Test সফলভাবে রান হলে নিচের আউটপুট দেখতে পাবেন:
Passed! 2 tests.
xUnit ব্যবহার করে ASP.NET Core অ্যাপের জন্য সহজেই শক্তিশালী Unit Test তৈরি করা যায়, যা অ্যাপ্লিকেশনের মান এবং স্থায়িত্ব বাড়ায়।
common.read_more